#!/usr/bin/expect
########################################################################
# push local server’s file to remote server
#
# code by yinsuiqiao (2018.06.21)
########################################################################
 
if { $argc!=6 }  {
    send_user "Usage: push_file.exp localfile remoteip remoteport remoteuser remotepwd remotedir\n\n"
    exit 1
}
 
set localfile  [lindex $argv 0]
set remoteip   [lindex $argv 1]
set remoteport [lindex $argv 2]
set remoteuser [lindex $argv 3]
set remotepwd  [lindex $argv 4]
set remotedir  [lindex $argv 5]
 
set timeout 3600
 
spawn /usr/bin/rsync -arvPz -e "ssh -l$remoteuser -p$remoteport" $localfile $remoteip:$remotedir
 
expect {
    "password:" {
        send "$remotepwd\r"
        exp_continue
    }
 
    "yes/no)?" {
        send "yes\r"
        exp_continue
    }
 
    timeout {
        close
        break
    }
 
    eof {
        exit 0
    }
}
 
exit
